From 92b0d2e8ea8b41ea914eb4d66b48cc7dd2d34b9d Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Mon, 1 May 2017 12:57:05 -0400 Subject: [PATCH] Remove GtkWindow::hide-titlebar-when-maximized This was only every implemented under X11, and with CSD, this is clearly in the application realm. We should not pretend that we can support it on the toolkit level. https://bugzilla.gnome.org/show_bug.cgi?id=775061 --- demos/gtk-demo/application.c | 14 ----- demos/gtk-demo/menus.ui | 4 -- docs/reference/gtk/gtk4-sections.txt | 2 - gtk/gtkwindow.c | 86 +--------------------------- gtk/gtkwindow.h | 5 -- testsuite/gtk/window.c | 61 -------------------- 6 files changed, 3 insertions(+), 169 deletions(-) diff --git a/demos/gtk-demo/application.c b/demos/gtk-demo/application.c index 6233f72675..217947f9a1 100644 --- a/demos/gtk-demo/application.c +++ b/demos/gtk-demo/application.c @@ -291,19 +291,6 @@ change_theme_state (GSimpleAction *action, g_simple_action_set_state (action, state); } -static void -change_titlebar_state (GSimpleAction *action, - GVariant *state, - gpointer user_data) -{ - GtkWindow *window = user_data; - - gtk_window_set_hide_titlebar_when_maximized (GTK_WINDOW (window), - g_variant_get_boolean (state)); - - g_simple_action_set_state (action, state); -} - static void change_radio_state (GSimpleAction *action, GVariant *state, @@ -322,7 +309,6 @@ static GActionEntry app_entries[] = { }; static GActionEntry win_entries[] = { - { "titlebar", activate_toggle, NULL, "false", change_titlebar_state }, { "shape", activate_radio, "s", "'oval'", change_radio_state }, { "bold", activate_toggle, NULL, "false", NULL }, { "about", activate_about, NULL, NULL, NULL }, diff --git a/demos/gtk-demo/menus.ui b/demos/gtk-demo/menus.ui index a0aecfa1e6..16ca40bad9 100644 --- a/demos/gtk-demo/menus.ui +++ b/demos/gtk-demo/menus.ui @@ -38,10 +38,6 @@ _Prefer Dark Theme app.dark - - _Hide Titlebar when maximized - win.titlebar - _Color
diff --git a/docs/reference/gtk/gtk4-sections.txt b/docs/reference/gtk/gtk4-sections.txt index 3c0e27cce4..e74f9c5c26 100644 --- a/docs/reference/gtk/gtk4-sections.txt +++ b/docs/reference/gtk/gtk4-sections.txt @@ -4749,7 +4749,6 @@ gtk_window_set_position gtk_window_set_transient_for gtk_window_set_attached_to gtk_window_set_destroy_with_parent -gtk_window_set_hide_titlebar_when_maximized gtk_window_set_screen gtk_window_get_screen gtk_window_is_active @@ -4797,7 +4796,6 @@ gtk_window_get_default_icon_list gtk_window_get_default_icon_name gtk_window_get_default_size gtk_window_get_destroy_with_parent -gtk_window_get_hide_titlebar_when_maximized gtk_window_get_icon gtk_window_get_icon_list gtk_window_get_icon_name diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c index 56da76f21d..091b7f06f6 100644 --- a/gtk/gtkwindow.c +++ b/gtk/gtkwindow.c @@ -238,7 +238,6 @@ struct _GtkWindowPrivate guint focus_on_map : 1; guint fullscreen_initially : 1; guint has_user_ref_count : 1; - guint hide_titlebar_when_maximized : 1; guint iconify_initially : 1; /* gtk_window_iconify() called before realization */ guint is_active : 1; guint maximize_initially : 1; @@ -1787,9 +1786,6 @@ gtk_window_set_property (GObject *object, case PROP_DESTROY_WITH_PARENT: gtk_window_set_destroy_with_parent (window, g_value_get_boolean (value)); break; - case PROP_HIDE_TITLEBAR_WHEN_MAXIMIZED: - gtk_window_set_hide_titlebar_when_maximized (window, g_value_get_boolean (value)); - break; case PROP_ICON: gtk_window_set_icon (window, g_value_get_object (value)); @@ -1901,9 +1897,6 @@ gtk_window_get_property (GObject *object, case PROP_DESTROY_WITH_PARENT: g_value_set_boolean (value, priv->destroy_with_parent); break; - case PROP_HIDE_TITLEBAR_WHEN_MAXIMIZED: - g_value_set_boolean (value, priv->hide_titlebar_when_maximized); - break; case PROP_ICON: g_value_set_object (value, gtk_window_get_icon (window)); break; @@ -3800,74 +3793,6 @@ gtk_window_get_destroy_with_parent (GtkWindow *window) return window->priv->destroy_with_parent; } -static void -gtk_window_apply_hide_titlebar_when_maximized (GtkWindow *window) -{ -#ifdef GDK_WINDOWING_X11 - GdkWindow *gdk_window; - gboolean setting; - - setting = window->priv->hide_titlebar_when_maximized; - gdk_window = _gtk_widget_get_window (GTK_WIDGET (window)); - - if (GDK_IS_X11_WINDOW (gdk_window)) - gdk_x11_window_set_hide_titlebar_when_maximized (gdk_window, setting); -#endif -} - -/** - * gtk_window_set_hide_titlebar_when_maximized: - * @window: a #GtkWindow - * @setting: whether to hide the titlebar when @window is maximized - * - * If @setting is %TRUE, then @window will request that it’s titlebar - * should be hidden when maximized. - * This is useful for windows that don’t convey any information other - * than the application name in the titlebar, to put the available - * screen space to better use. If the underlying window system does not - * support the request, the setting will not have any effect. - * - * Note that custom titlebars set with gtk_window_set_titlebar() are - * not affected by this. The application is in full control of their - * content and visibility anyway. - * - * Since: 3.4 - **/ -void -gtk_window_set_hide_titlebar_when_maximized (GtkWindow *window, - gboolean setting) -{ - g_return_if_fail (GTK_IS_WINDOW (window)); - - if (window->priv->hide_titlebar_when_maximized == setting) - return; - - window->priv->hide_titlebar_when_maximized = setting; - gtk_window_apply_hide_titlebar_when_maximized (window); - - g_object_notify_by_pspec (G_OBJECT (window), window_props[PROP_HIDE_TITLEBAR_WHEN_MAXIMIZED]); -} - -/** - * gtk_window_get_hide_titlebar_when_maximized: - * @window: a #GtkWindow - * - * Returns whether the window has requested to have its titlebar hidden - * when maximized. See gtk_window_set_hide_titlebar_when_maximized (). - * - * Returns: %TRUE if the window has requested to have its titlebar - * hidden when maximized - * - * Since: 3.4 - **/ -gboolean -gtk_window_get_hide_titlebar_when_maximized (GtkWindow *window) -{ - g_return_val_if_fail (GTK_IS_WINDOW (window), FALSE); - - return window->priv->hide_titlebar_when_maximized; -} - static GtkWindowGeometryInfo* gtk_window_get_geometry_info (GtkWindow *window, gboolean create) @@ -5753,10 +5678,8 @@ update_csd_visibility (GtkWindow *window) if (priv->title_box == NULL) return FALSE; - visible = !priv->fullscreen && - !(priv->titlebar == priv->title_box && - priv->maximized && - priv->hide_titlebar_when_maximized); + visible = !priv->fullscreen; + gtk_widget_set_child_visible (priv->title_box, visible); return visible; @@ -6016,10 +5939,7 @@ gtk_window_map (GtkWidget *widget) gdk_window_set_keep_below (gdk_window, priv->below_initially); if (priv->type == GTK_WINDOW_TOPLEVEL) - { - gtk_window_set_theme_variant (window); - gtk_window_apply_hide_titlebar_when_maximized (window); - } + gtk_window_set_theme_variant (window); /* No longer use the default settings */ priv->need_default_size = FALSE; diff --git a/gtk/gtkwindow.h b/gtk/gtkwindow.h index 771feeeb05..0f247e0349 100644 --- a/gtk/gtkwindow.h +++ b/gtk/gtkwindow.h @@ -227,11 +227,6 @@ void gtk_window_set_destroy_with_parent (GtkWindow *window, gboolean setting); GDK_AVAILABLE_IN_ALL gboolean gtk_window_get_destroy_with_parent (GtkWindow *window); -GDK_AVAILABLE_IN_3_4 -void gtk_window_set_hide_titlebar_when_maximized (GtkWindow *window, - gboolean setting); -GDK_AVAILABLE_IN_3_4 -gboolean gtk_window_get_hide_titlebar_when_maximized (GtkWindow *window); GDK_AVAILABLE_IN_ALL void gtk_window_set_mnemonics_visible (GtkWindow *window, gboolean setting); diff --git a/testsuite/gtk/window.c b/testsuite/gtk/window.c index 70fdf761ef..59454cc150 100644 --- a/testsuite/gtk/window.c +++ b/testsuite/gtk/window.c @@ -348,66 +348,6 @@ on_map_event (GtkWidget *window) return FALSE; } -static void -test_hide_titlebar_when_maximized (void) -{ - GtkWidget *window; - - g_test_bug ("740287"); - - /* test that hide-titlebar-when-maximized gets set appropriately - * on the window, if it's set before the window is realized. - */ - - window = gtk_window_new (GTK_WINDOW_TOPLEVEL); - - g_signal_connect (window, - "map-event", - G_CALLBACK (on_map_event), - NULL); - - gtk_window_set_hide_titlebar_when_maximized (GTK_WINDOW (window), TRUE); - - gtk_widget_show (window); - - g_timeout_add (100, stop_main, NULL); - gtk_main (); - -#ifdef GDK_WINDOWING_X11 - if (GDK_IS_X11_SCREEN (gtk_widget_get_screen (window))) - { - Atom type; - gint format; - gulong nitems; - gulong bytes_after; - gulong *hide = NULL; - - XGetWindowProperty (gdk_x11_get_default_xdisplay (), - GDK_WINDOW_XID (gtk_widget_get_window (window)), - gdk_x11_get_xatom_by_name ("_GTK_HIDE_TITLEBAR_WHEN_MAXIMIZED"), - 0, - G_MAXLONG, - False, - XA_CARDINAL, - &type, - &format, - &nitems, - &bytes_after, - (guchar **) &hide); - - g_assert_cmpint (type, !=, None); - g_assert_cmpint (type, ==, XA_CARDINAL); - g_assert_cmpint (format, ==, 32); - g_assert_cmpint (nitems, ==, 1); - g_assert_cmpint (hide[0], ==, 1); - - XFree (hide); - } -#endif - - gtk_widget_destroy (window); -} - int main (int argc, char *argv[]) { @@ -428,7 +368,6 @@ main (int argc, char *argv[]) g_test_add_func ("/window/show-hide", test_show_hide); g_test_add_func ("/window/show-hide2", test_show_hide2); g_test_add_func ("/window/show-hide3", test_show_hide3); - g_test_add_func ("/window/hide-titlebar-when-maximized", test_hide_titlebar_when_maximized); return g_test_run (); } -- 2.30.2